10 PCLEAR 6:DIM MA(8,8,3):DIM GU(3,4):DIM P(3):DIM TT$(14):DIM PL(16,16):DIM G1(16,16):DIM G2(16,16):DIM G3(16,16):DIM G4(16,16):DIM N(10)
20 GOTO 10000
30 CLS
100 SC=SC+N(2):IF SC>N(4) THEN SC=N(1)
110 PMODE N(1),SC
120 PCOPY N(5) TO N(SC):PCOPY N(6) TO N(SC)+1
130 FOR G=1TO3
135 IF GU(G,1)=P(1) AND GU(G,2)=P(2) THEN GOTO4000
137 IF GU(G,4)=1 THEN GOSUB3500:GU(G,4)=0:GOTO150
139 RV=RV+1:IF RV>14 THEN RV=0:A=RND(2):IF A=1 THEN GOSUB5000
140 IF GU(G,3)=3 THEN GOSUB 3000:GU(G,3)=C ELSEIF GU(G,3)=1 THEN GOSUB 3100:GU(G,3)=C ELSEIF GU(G,3)=2 THEN GOSUB 3200:GU(G,3)=C ELSEIF GU(G,3)=4 THEN GOSUB 3290:GU(G,3)=C
150 AG=0:GOSUB2000:IF P(3)=0 THEN GOTO4500
160 IF AG=1 THEN GOSUB2500
170 NEXT G
175 IF P(3)>0 THEN LINE(2,94)-(FIX(11.5*P(3)),97),PSET,B
180 FOR A=N(1) TO N(3)
190 X1=MA(GU(A,2),GU(A,1),2):Y1=MA(GU(A,2),GU(A,1),3)+N(4):X2=X1+N(7):Y2=Y1+N(8):IF GU(A,3)=N(1) THEN GOSUB500 ELSEIF GU(A,3)=N(2) THEN GOSUB510 ELSEIF GU(A,3)=N(3) THEN GOSUB520 ELSEIF GU(A,3)=N(4) THEN GOSUB530
200 NEXT A
210 IF KJ=1 THEN GOSUB400 ELSE A$=INKEY$
220 IF A$=CHR$(8) THEN GOSUB1000 ELSEIF A$=CHR$(9) THEN GOSUB1020 ELSEIF A$=CHR$(10)THEN GOSUB1040 ELSEIF A$=CHR$(94)THEN GOSUB1060
225 IF P(1)=8 AND P(2)=3 THEN GOTO6000
230 X1=MA(P(2),P(1),2):Y1=MA(P(2),P(1),3)+N(4):X2=X1+N(7):Y2=Y1+N(8):PUT(X1,Y1)-(X2,Y2),PL,OR
240 SCREEN1,1:PLAY M$:GOTO100
400 JX=JOYSTK(0):JY=JOYSTK(1)
410 IF JX<N(9) THEN A$=CHR$(8):RETURN
420 IF JX>N(10) THEN A$=CHR$(9):RETURN
430 IF JY>N(10) THEN A$=CHR$(10):RETURN
440 IF JY<N(9) THEN A$=CHR$(94):RETURN
450 A$="":RETURN
500 PUT(X1,Y1)-(X2,Y2),G1,OR:RETURN
510 PUT(X1,Y1)-(X2,Y2),G2,OR:RETURN
520 PUT(X1,Y1)-(X2,Y2),G3,OR:RETURN
530 PUT(X1,Y1)-(X2,Y2),G4,OR:RETURN
1000 X=MA(P(2),P(1),1):IF X=2 OR X=3 OR X=6 OR X=7 OR X=8 OR X=10 OR X=11 OR X=13 THEN P(1)=P(1)-N(1)
1010 RETURN
1020 X=MA(P(2),P(1),1):IF X=1 OR X=3 OR X=4 OR X=5 OR X=8 OR X=10 OR X=11 OR X=12 THEN P(1)=P(1)+N(1)
1030 RETURN
1040 Y=MA(P(2),P(1),1):IF Y=3 OR Y=4 OR Y=6 OR Y=9 OR Y=10 OR Y=12 OR Y=13 THEN P(2)=P(2)+N(1)
1050 RETURN
1060 Y=MA(P(2),P(1),1):IF Y=3 OR Y=5 OR Y=7 OR Y=9 OR Y=11 OR Y=12 OR Y=13 THEN P(2)=P(2)-N(1)
1070 RETURN
1080 GOTO100
2000 IF GU(G,3)=3 AND P(2)=GU(G,2) AND P(1)<GU(G,1) THEN GOTO2060
2020 IF GU(G,3)=1 AND P(2)=GU(G,2) AND P(1)>GU(G,1) THEN GOTO2110
2030 IF GU(G,3)=2 AND P(1)=GU(G,1) AND P(2)>GU(G,2) THEN GOTO2160
2040 IF GU(G,3)=4 AND P(1)=GU(G,1) AND P(2)<GU(G,2) THEN GOTO2210
2050 RETURN
2060 A=MA(P(2),P(1),1):IF A=6 OR A=7 OR A=9 OR A=13 THEN RETURN
2070 IF GU(G,1)-P(1)<3 THEN AG=1:RETURN
2080 FOR A=P(1)+1 TO GU(G,1)-1
2090 B=MA(P(2),A,1):IF B=4 OR B=5 OR B=6 OR B=7 OR B=9 OR B=12 OR B=13 OR B=14 THEN RETURN
2100 NEXT A:AG=1:RETURN
2110 A=MA(P(2),P(1),1):IF A=4 OR A=5 OR A=9 OR A=12 THEN RETURN
2120 IF P(1)-GU(G,1)<3 THEN AG=1:RETURN
2130 FOR A=GU(G,1)+1 TO P(1)-1
2140 B=MA(P(2),A,1):IF B=4 OR B=5 OR B=6 OR B=7 OR B=9 OR B=12 OR B=13 OR B=14 THEN RETURN
2150 NEXT A:AG=1:RETURN
2160 A=MA(P(2),P(1),1):IF A=1 OR A=2 OR A=4 OR A=6 OR A=8 OR A=10 THEN RETURN
2170 IF P(2)>GU(G,1) AND P(2)-GU(G,2)<3 THEN AG=1:RETURN
2180 FOR A=GU(G,2)+1 TO P(2)-1
2190 B=MA(A,P(1),1):IF B=1 OR B=2 OR B=4 OR B=5 OR B=6 OR B=7 OR B=8 OR B=10 OR B=11 OR B=14 THEN RETURN
2200 NEXT A:AG=1:RETURN
2210 A=MA(P(2),P(1),1):IF A=1 OR A=2 OR A=5 OR A=7 OR A=8 OR A=11 THEN RETURN
2220 IF GU(G,2)>P(2) AND GU(G,2)-P(2)<3 THEN AG=1:RETURN
2230 FOR A=P(2)+1 TO GU(G,2)-1
2240 B=MA(A,P(1),1):IF B=1 OR B=2 OR B=4 OR B=5 OR B=6 OR B=7 OR B=8 OR B=10 OR B=11 OR B=14 THEN RETURN
2250 NEXT A:AG=1:RETURN
2500 X1=MA(GU(G,2),GU(G,1),2)+7:Y1=MA(GU(G,2),GU(G,1),3)+11:X2=MA(P(2),P(1),2)+7:Y2=MA(P(2),P(1),3)+11:LINE(X1,Y1)-(X2,Y2),PSET
2510 P(3)=P(3)-1
2520 GU(G,4)=1
2530 RETURN
2990 RETURN
3000 A=GU(G,1)-N(1):GU(G,1)=A
3010 B=MA(GU(G,2),A,1)
3020 IF B=1 THEN C=1:RETURN
3030 IF B=3 THEN D=RND(3):IF D=1 THEN C=2:RETURN ELSEIF D=2 THEN C=3:RETURN ELSEIF D=3 THEN C=4:RETURN
3040 IF B=4 THEN C=2:RETURN
3050 IF B=5 THEN C=4:RETURN
3060 IF B=8 THEN C=3:RETURN
3070 IF B=10 THEN D=RND(2):IF D=1 THEN C=2:RETURN ELSEIF D=2 THEN C=3:RETURN
3080 IF B=11 THEN D=RND(2):IF D=1 THEN C=3:RETURN ELSEIF D=2 THEN C=4:RETURN
3090 IF B=12 THEN D=RND(2):IF D=1 THEN C=2:RETURN ELSEIF D=2 THEN C=4:RETURN
3100 A=GU(G,1)+N(1):GU(G,1)=A
3110 B=MA(GU(G,2),A,1)
3120 IF B=2 THEN C=3:RETURN
3130 IF B=3 THEN D=RND(3):IF D=1 THEN C=4:RETURN ELSEIF D=2 THEN C=1:RETURN ELSEIF D=3 THEN C=2:RETURN
3140 IF B=6 THEN C=2:RETURN
3150 IF B=7 THEN C=4:RETURN
3160 IF B=8 THEN C=1:RETURN
3170 IF B=10 THEN D=RND(2):IF D=1 THEN C=1:RETURN ELSEIF D=2 THEN C=2:RETURN
3180 IF B=11 THEN D=RND(2):IF D=1 THEN C=4:RETURN ELSEIF D=2 THEN C=1:RETURN
3190 IF B=13 THEN D=RND(2):IF D=1 THEN C=4:RETURN ELSEIF D=2 THEN C=2:RETURN
3200 A=GU(G,2)+N(1):GU(G,2)=A
3210 B=MA(A,GU(G,1),1)
3220 IF B=3 THEN D=RND(3):IF D=1 THEN C=1:RETURN ELSEIF D=2 THEN C=2:RETURN ELSEIF D=3 THEN C=3:RETURN
3230 IF B=5 THEN C=1:RETURN
3240 IF B=7 THEN C=3:RETURN
3250 IF B=9 THEN C=2:RETURN
3260 IF B=11 THEN D=RND(2):IF D=1 THEN C=1:RETURN ELSEIF D=2 THEN C=3:RETURN
3270 IF B=12 THEN D=RND(2):IF D=1 THEN C=1:RETURN ELSEIF D=2 THEN C=2:RETURN
3280 IF B=13 THEN D=RND(2):IF D=1 THEN C=2:RETURN ELSEIF D=2 THEN C=3:RETURN
3290 A=GU(G,2)-N(1):GU(G,2)=A
3300 B=MA(A,GU(G,1),1)
3310 IF B=3 THEN D=RND(3):IF D=1 THEN C=3:RETURN ELSEIF D=2 THEN C=4:RETURN ELSEIF D=3 THEN C=1:RETURN
3320 IF B=4 THEN C=1:RETURN
3330 IF B=6 THEN C=3:RETURN
3340 IF B=9 THEN C=4:RETURN
3350 IF B=10 THEN D=RND(2):IF D=1 THEN C=3:RETURN ELSEIF D=2 THEN C=1:RETURN
3360 IF B=12 THEN D=RND(2):IF D=1 THEN C=4:RETURN ELSEIF D=2 THEN C=1:RETURN
3370 IF B=13 THEN D=RND(2):IF D=1 THEN C=3:RETURN ELSEIF D=2 THEN C=4:RETURN
3500 IF GU(G,3)=3 AND GU(G,1)-P(1)>1 THEN GU(G,1)=GU(G,1)-1:RETURN
3510 IF GU(G,3)=1 AND P(1)-GU(G,1)>1 THEN GU(G,1)=GU(G,1)+1:RETURN
3520 IF GU(G,3)=2 AND P(2)-GU(G,2)>1 THEN GU(G,2)=GU(G,2)+1:RETURN
3530 IF GU(G,3)=4 AND GU(G,2)-P(2)>1 THEN GU(G,2)=GU(G,2)-1:RETURN
3540 RETURN
4000 SCREEN1,1:CLS:PRINT"COLLISION DETECTED, YOU ARE DEAD":PRINT:PRINT"NO POINTS AWARDED."
4010 PLAY EX$
4020 PRINT:PRINT"PLAY AGAIN? (Y/N)"
4030 A$=INKEY$:IF A$="Y" THEN GOTO10230 ELSEIF A$="N" THEN CLS:END ELSE GOTO4030
4500 CLS:PRINT"YOU WERE SHOT 5 TIMES! YOU DIED.":PRINT:PRINT"NO POINTS AWARDED."
4510 PLAY EX$
4520 PRINT:PRINT"PLAY AGAIN? (Y/N)"
4530 A$=INKEY$:IF A$="Y" THEN GOTO10230 ELSEIF A$="N" THEN CLS:END ELSE GOTO4530
5000 A=MA(GU(G,2),GU(G,1),1):B=GU(G,3)
5010 IF A=3 AND B=3 THEN GU(G,3)=1 ELSEIF A=3 AND B=1 THEN GU(G,3)=3 ELSEIF A=3 AND B=2 THEN GU(G,3)=4 ELSEIF A=3 AND B=4 THEN GU(G,3)=2
5020 IF A=4 AND B=2 THEN GU(G,3)=1 ELSEIF A=4 AND B=1 THEN GU(G,3)=2
5030 IF A=5 AND B=1 THEN GU(G,3)=4 ELSEIF A=5 AND B=4 THEN GU(G,3)=1
5040 IF A=6 AND B=2 THEN GU(G,3)=3 ELSEIF A=6 AND B=3 THEN GU(G,3)=2
5050 IF A=7 AND B=3 THEN GU(G,3)=4 ELSEIF A=7 AND B=4 THEN GU(G,3)=3
5060 IF A=8 AND B=3 THEN GU(G,3)=1 ELSEIF A=8 AND B=1 THEN GU(G,3)=3
5070 IF A=9 AND B=2 THEN GU(G,3)=4 ELSEIF A=9 AND B=4 THEN GU(G,3)=2
5080 IF A=10 AND B=1 THEN GU(G,3)=3 ELSEIF A=10 AND B=3 THEN GU(G,3)=1
5090 IF A=11 AND B=1 THEN GU(G,3)=3 ELSEIF A=11 AND B=3 THEN GU(G,3)=1
5100 IF A=12 AND B=2 THEN GU(G,3)=4 ELSEIF A=12 AND B=4 THEN GU(G,3)=2
5110 IF A=13 AND B=2 THEN GU(G,3)=4 ELSEIF A=13 AND B=4 THEN GU(G,3)=2
5120 RETURN
6000 CLS:PRINT"YOU MADE IT TO THE EXIT!":T=FIX(TIMER/60):S=5-P(3)
6010 PRINT:PRINT"YOU GOT THERE IN ";
6020 PRINT T;
6030 PRINT"SECONDS."
6040 PRINT:PRINT"YOU WERE SHOT ";
6050 PRINT S;
6060 PRINT"TIMES";
6070 PRINT:PRINT"YOUR ADJUSTED SCORE IS ";
6080 PRINT T*(S+1);
6090 PRINT:PRINT"THE LOWEST NUMBER SCORE WINS    THIS GAME. HIGHER NUMBER SCORES ARE BAD."
6100 PRINT:PRINT"PLAY AGAIN? (Y/N)"
6110 A$=INKEY$:IF A$="Y" THEN GOTO10230 ELSE IF A$="N" THEN CLS:END ELSE 6110
10000 CLS:PRINT@37,"CUTHBERT GEAR SOLID":PRINT@99,"BY ALISON DENU  (C)2025":PRINT@489,"PLEASE WAIT...."
10010 MA(1,1,1)=4:MA(1,2,1)=6:MA(1,3,1)=4:MA(1,4,1)=8:MA(1,5,1)=8:MA(1,6,1)=10:MA(1,7,1)=6:MA(1,8,1)=14
10020 MA(2,1,1)=9:MA(2,2,1)=9:MA(2,3,1)=9:MA(2,4,1)=14:MA(2,5,1)=14:MA(2,6,1)=9:MA(2,7,1)=9:MA(2,8,1)=14
10030 MA(3,1,1)=9:MA(3,2,1)=5:MA(3,3,1)=3:MA(3,4,1)=8:MA(3,5,1)=10:MA(3,6,1)=7:MA(3,7,1)=12:MA(3,8,1)=2
10040 MA(4,1,1)=9:MA(4,2,1)=14:MA(4,3,1)=5:MA(4,4,1)=6:MA(4,5,1)=9:MA(4,6,1)=14:MA(4,7,1)=9:MA(4,8,1)=14
10050 MA(5,1,1)=5:MA(5,2,1)=10:MA(5,3,1)=8:MA(5,4,1)=7:MA(5,5,1)=12:MA(5,6,1)=8:MA(5,7,1)=11:MA(5,8,1)=6
10060 MA(6,1,1)=1:MA(6,2,1)=13:MA(6,3,1)=14:MA(6,4,1)=4:MA(6,5,1)=11:MA(6,6,1)=6:MA(6,7,1)=14:MA(6,8,1)=9
10070 MA(7,1,1)=14:MA(7,2,1)=9:MA(7,3,1)=14:MA(7,4,1)=9:MA(7,5,1)=14:MA(7,6,1)=9:MA(7,7,1)=14:MA(7,8,1)=9
10080 MA(8,1,1)=14:MA(8,2,1)=5:MA(8,3,1)=8:MA(8,4,1)=11:MA(8,5,1)=8:MA(8,6,1)=11:MA(8,7,1)=8:MA(8,8,1)=7
10090 N(1)=1:N(2)=2:N(3)=3:N(4)=4:N(5)=5:N(6)=6:N(7)=(15):N(8)=19:N(9)=20:N(10)=43
10100 TT$(1)="D24NR24U24R24BD6BL9L6D6NR6D6R6":TT$(2)="R24D24L24BR6BU6E6NE6NF6NH6":TT$(3)=";":TT$(4)="NR24D24":TT$(5)="D24R24"
10110 TT$(6)="R24D24":TT$(7)="BR24D24L24":TT$(8)="R24BD24L24":TT$(9)="D24BR24U24":TT$(10)="R24":M$="T255;L255;V31;O1;A"
10120 TT$(11)="BD24R24":TT$(12)="D24":TT$(13)="BR24D24":TT$(14)="R24D24L24U24D6NR24D6NR24D6R24D6L6NU24L6NU24LDNU24L6U24"
10125 EX$="L255;01;T255;V31;1;12;6;3;9;10;5;11;3;9;12;5;8;2;2;3;12;6;9;2;7;10;4;12;8;5;9;8;1;V26;1;9;10;3;1;V19;2;1;4;7;1;V10;2;9;5;2;10;12;6;8"
10130 PMODE1,5:PCLS5:DRAW"C8"
10140 CIRCLE(7,7),7,6:PAINT(7,7),6:GET(0,0)-(15,15),PL:PCLS
10150 DRAW"BM15,7;M0,3;M0,12;M15,8":PAINT(7,7),8:GET(0,0)-(15,15),G1:PCLS
10160 DRAW"BM8,15;M12,0;M3,0;M7,15":PAINT(7,7),8:GET(0,0)-(15,15),G2:PCLS
10170 DRAW"BM0,7;M15,3;M15,12;M0,8":PAINT(7,7),8:GET(0,0)-(15,15),G3:PCLS
10180 DRAW"BM7,0;M3,15;M12,15;M8,0":PAINT(7,7),8:GET(0,0)-(15,15),G4:PCLS
10190 PCLS5:DRAW"C7"
10200 FOR B=1 TO 8:FOR A=1 TO 8
10210 MA(B,A,2)=(A*24)+40:MA(B,A,3)=(B*24)-24:DRAW"BM"+STR$(MA(B,A,2)-5)+","+STR$(MA(B,A,3))+TT$(MA(B,A,1))+";"
10220 NEXT A:NEXT B
10225 LINE(0,92)-(58,99),PSET,B:PAINT(32,32),6,7:PAINT(32,160),6,7
10226 DRAW"C8":REM LINE(2,94)-(56,97),PSET,B
10230 TIMER=0:SC=3:RV=0:P(1)=1:P(2)=6:P(3)=5:GU(1,1)=7:GU(1,2)=3:GU(1,3)=4:GU(1,4)=0:GU(2,1)=7:GU(2,2)=5:GU(2,3)=3:GU(2,4)=0:GU(3,1)=8:GU(3,2)=5:GU(3,3)=2:GU(3,4)=0
10235 CLS:PRINT"KEYBOARD OR JOYSTICK? (K/J)"
10236 A$=INKEY$:IF A$="K" THEN KJ=0 ELSEIF A$="J" THEN KJ=1 ELSE GOTO10236
10240 CLS:PRINT"DO YOU NEED INSTRUCTIONS? (Y/N)"
10250 A$=INKEY$:IF A$="Y" THEN GOTO10270 ELSE IF A$="N" THEN GOTO30 ELSE R=RND(PEEK(275)*-1)
10260 GOTO10250
10270 CLS:PRINT"USE THE ARROW KEYS TO MOVE FROM THE ENTRANCE TO THE EXIT.":PRINT
10280 PRINT"GUARDS WILL SHOOT ON SIGHT, BUT LOSE INTEREST IN YOU AS SOON AS YOU MOVE OUT OF THEIR LINE OF   SIGHT.":PRINT:PRINT"PRESS ANY KEY TO BEGIN...."
10290 A$=INKEY$:IF A$="" THEN GOTO10290
10300 GOTO30
